﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Drawing;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using Librerias;
using System.IO;

namespace eCampusWeb
{
    public partial class AsignaturaMateriales : System.Web.UI.Page
    {
        ENMaterial mat;
        String asigCodigo = "";
        DataTable dt = null;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                mat = new ENMaterial();

                try
                {
                    ///Veo a ver quien accede a la página
                    int quienEs;
                    quienEs = Convert.ToInt32(Session["tipo"]);

                    ///Cargo los datos en consecuencia
                    cargaDatos(quienEs);

                    ///Para que lo indique en la pg Asignatura.Master
                    Master.modificaColor("btMateriales");
                }
                catch (NullReferenceException)
                {
                }
                catch (Exception)
                { 
                }
            }
        }

        private void cargaDatos(int visitante)
        {
            try
            {
                string quienEs = "";
                quienEs = Session["correo"].ToString();

                if ((asigCodigo = Request.QueryString["codigo"]) != null)
                {
                    ///miro que he de cargar
                    switch (visitante)
                    {
                        ///INVITADO -> no puede ver materiales
                        case -1:

                            break;

                        ///CARGO MATERIALES DEL ALUMNO
                        case 2:
                            ///Me cargará materiales

                            dt = mat.GetMaterialesWebSegunAsignaturas(asigCodigo);
                            gvMateriales.DataSource = dt;
                            gvMateriales.DataBind();
                            break;

                        ///CARGO MATERIALES DEL PROFESOR
                        case 1:

                            dt = mat.GetMaterialesWebSegunAsignaturas(asigCodigo);
                            gvMateriales.DataSource = dt;
                            gvMateriales.DataBind();
                            break;

                        ///OTRO -> no puede ver materiales
                        default:

                            break;

                    }
                }
            }
            catch (NullReferenceException)
            {
            }
            catch (Exception)
            {
            }
            catch
            { 
            }
        }



 /*         mat = new ENMaterial();
            try
            {
                if ((asigCodigo = Request.QueryString["codigo"]) != null)
                {
                  
                    dt = mat.GetMaterialesSegunAsignaturas(asigCodigo);                
                    gvMateriales.DataSource = dt;
                    gvMateriales.DataBind();
                }

                Master.modificaColor("btMateriales");

            }
            catch (Exception ex)
            {

            }
          
        }*/


      

        protected void gvMateriales_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            try
            {
                this.gvMateriales.PageIndex = e.NewPageIndex;
                this.gvMateriales.DataSource = Session["View"].ToString();
            }
            catch (Exception ex)
            {

            }
        }

        #region Descarga Materiales
        public static string ServerMapPath(string path)
        {
            return HttpContext.Current.Server.MapPath(path);
        }

        public static HttpResponse GetHttpResponse()
        {
            return HttpContext.Current.Response;
        }

        public static void DownLoadFileFromServer(string fileName)
        {
            try
            {
                //Cogemos la ruta de nuestro Proyecto
                string filePath = ServerMapPath(fileName);
                //Cogemos el response actual
                HttpResponse res = GetHttpResponse();
                res.Clear();
                res.AppendHeader("content-disposition", "attachment; filename=" + filePath);
                res.ContentType = "application/octet-stream";
                res.WriteFile(filePath);
                res.Flush();
                res.End();
            }
            catch (FileNotFoundException)
            { }
            catch (Exception)
            { }
            catch
            { }
        }

        protected void descargar_Click(object sender, EventArgs e)
        {
            ImageButton a = (ImageButton)sender;
            string fileName = a.CommandArgument;

            //Descarga desde el servidor
            DownLoadFileFromServer(fileName);
        }
        #endregion

      
        }
    }
